# _*_coding:utf-8 _*_
# @Time    :2019/11/7 18:00
# @Author  :Dapan
# @Email   :248312738@qq.com
# 图片相关操作


from qiniu import Auth, put_file, etag, urlsafe_base64_encode, put_data
import qiniu.config

# 需要填写你的七牛云中 Access Key 和 Secret Key
access_key = 'OxOEmJa1gRAo5FRG9of7kiMr11EcRGO6Z4qM_kQR'
secret_key = '7bAs09xK-r4TnThYANi4KwoHxZxFyJc8TlwDXRpZ'


def storage(file_data):
    """
    上传图片到七牛云, file_data是文件的二进制数据
    :param file_data: 要上传的图片二进制数据
    :return:
    """
    # 构建鉴权对象
    q = Auth(access_key, secret_key)
    # 要上传的空间
    bucket_name = 'ihome-2'
    # 上传后保存的文件名
    # key = 'my-python-logo.png'
    key = None  # 不指定文件名字

    # 生成上传 Token，可以指定过期时间等
    token = q.upload_token(bucket_name, key, 3600)
    # ret, info = put_file(token, key, localfile)
    ret, info = put_data(token, key, file_data)

    if info.status_code == 200:
        # 表示上传成功， 返回文件名
        return ret.get("key")
    else:
        # 表示上传失败
        raise Exception("上传失败")


if __name__ == '__main__':
    with open("./x-sign.png", "rb") as f:
        file_data = f.read()
        storage(file_data)